<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      //   function myName(name) {
      //     this.name = name
      //     this.show = function () {
      //       console.log(this.name)
      //     }
      //   }

      //   const yb = new myName('狂徒')
      //   console.log(yb)

      //   function createByObject(obj, ...args) {
      //     const constructor = Object.getPrototypeOf(obj).constructor
      //     return new constructor(...args)
      //   }
      //   const lmt = createByObject(yb, '张三')
      //   lmt.show()

      // 原型链
      //   const arr = []
      //   console.log(arr.__proto__.__proto__ === Object.__proto__)

      //   const a = {}
      //   const b = {}
      //   console.log(a.__proto__.isPrototypeOf(b))
      // 属性监测
      //   const a = { url: '哈哈哈' }
      //   const b = { name: '张三' }
      //   Object.setPrototypeOf(a, b)
      //   console.log('name' in a)

      //   for (const key in a) {
      //     if (a.hasOwnProperty.call(key, b)) {
      //       const element = a[key]
      //       console.log(element)
      //     }
      //   }
      // call apply
      //   const yb = {
      //     arr: [1, 4, 32, 12],
      //   }
      //   Object.setPrototypeOf(yb, {
      //     max() {
      //       return this.arr.sort((a, b) => b - a)[0]
      //     },
      //   })

      //   console.log(yb.max())

      //   const lmt = {
      //     obj: { js: 99, java: 88, php: 99 },
      //     get arr() {
      //       return Object.values(this.obj)
      //     },
      //   }

      //   console.log(yb.max.call(lmt))

      const wm = { js: 99, java: 88, php: 99 }
      //   console.log(Object.values(wm))

      // 求最大值
      const yb = [1, 3, 12, 32, 123, 321, 1234, 43]
      console.log(Math.max(...yb))
      console.log(Object.keys(wm), Math.max(...Object.values(wm)))
    </script>
  </body>
</html>
